package com.dao;

import java.util.List;
import javax.persistence.*;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.bean.SolicitudCotizacion;
import com.hbt.HibernateUtil;

public class SolicitudCotizacionDAO {
	private static SessionFactory sf = null;
	private static SolicitudCotizacionDAO instancia = null;
	
	public static SolicitudCotizacionDAO getInstancia(){
		if(instancia == null){
			sf = HibernateUtil.getSessionFactory();
			instancia = new SolicitudCotizacionDAO();
		}
		return instancia;
	}
	
	public void grabarSolicitudCotizacion (SolicitudCotizacion sc){
		Session session = sf.openSession();
		session.beginTransaction();
		session.persist(sc);
		session.flush();		
		session.getTransaction().commit();	
		session.close();
	}
	
	public SolicitudCotizacion getSolicitudCotizacion(SolicitudCotizacion sc) {
		Session session = sf.openSession();
		SolicitudCotizacion solicitud = (SolicitudCotizacion) session.get(SolicitudCotizacion.class, sc.getId());
		session.close();
		return solicitud;
	}

	public List<SolicitudCotizacion> getSolicitudesCotizacion() {
		Session session = sf.openSession();
		List<SolicitudCotizacion> result = (List<SolicitudCotizacion>) session.createQuery("from SolicitudCotizacion").list();
		session.close();
		return result;		
	}
	
	
	public SolicitudCotizacion getSolicitudCotizacion(int id){
		Session session = sf.openSession();
		SolicitudCotizacion sc = (SolicitudCotizacion) session.createQuery("from SolicitudCotizacion s where s.id = :var")
		.setInteger("var", id).setFirstResult(0).setMaxResults(1).uniqueResult();
		session.close();
		return sc;
	}
}
